package bLeMenu;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

import dessin.ModeleDessin;

import xdivers.PopupNouveau;

import aLeSoftware.EnvironnementDessin;
import aLeSoftware.Fenetre;
/**
 * Cette classe est le Menu de l'application, elle hérite de JMenuBar et regroupe différents menu : Fichier, Edition et Selection.
 * Fichier sert à ouvrir/sauvegarder/fermer un dessin; il sert aussi à quitter l'application.
 * Edition sert à effacer la feuille de dessin en cours.
 * Selection est utile pour effectuer des actions sur une selection.
 * Chaque JMenuItem est écouté par une instance de ControleurMenu grâce à addActionListener();
 * @author Arnaud
 *
 */

public class Menu extends JMenuBar {

	private ControleurMenu cmenu;
	private JMenu leMenuSelection;
	private JMenu leMenuEdition;
	private JMenuItem itemSaveAs;
	private JMenuItem itemClose;
	

	public Menu(ControleurMenu cm){
		this.cmenu = cm;

				// The first Menu named "Fichier"
				JMenu leMenuFichier = new JMenu("File");
				

				JMenuItem itemNew = new JMenuItem("New...",	new ImageIcon(getClass() .getResource( "/images/New.jpg")));
				JMenuItem itemOpen = new JMenuItem("Open...", new ImageIcon(getClass() .getResource( "/images/Open.jpg")));		
				itemSaveAs = new JMenuItem("Save As...",new ImageIcon(getClass() .getResource( "/images/Saveas.jpg")));
				itemClose= new JMenuItem("Close",new ImageIcon(getClass() .getResource( "/images/Exit.jpg")));
				JMenuItem itemExit = new JMenuItem("Exit",new ImageIcon(getClass() .getResource( "/images/Exit.jpg")));
				
				//The second Menu named Edition
				leMenuEdition = new JMenu ("Edit");
				JMenuItem itemClear = new JMenuItem("Clear",new ImageIcon(getClass() .getResource( "/images/clear.png")));
				
				
				//The third Menu named Selection
				leMenuSelection = new JMenu ("Selection");
				JMenu sousMenuTransformer = new JMenu ("Transformer");
				JMenu sousMenuDupliquer = new JMenu ("Dupliquer");
				JMenuItem selectionClear = new JMenuItem("Delete");
				JMenuItem selectionReset = new JMenuItem("Reset");
				JMenuItem selectionGroup = new JMenuItem("Group");
				JMenuItem selectionUngroup = new JMenuItem("Ungroup");
				JMenuItem items0 = new JMenuItem("Symetrie0");
				JMenuItem itemsY = new JMenuItem("SymetrieY");
				JMenuItem itemsX = new JMenuItem("SymetrieX");
				
				JMenuItem itemc0 = new JMenuItem("Clone0");
				JMenuItem itemcY = new JMenuItem("CloneY");
				JMenuItem itemcX = new JMenuItem("CloneX");
				
				
				
				
				
				//Adding Listeners to Items
				itemNew.addActionListener(this.cmenu);
				itemOpen.addActionListener(this.cmenu);
				itemSaveAs.addActionListener(this.cmenu);
				itemClose.addActionListener(this.cmenu);
				itemExit.addActionListener(this.cmenu);
				itemClear.addActionListener(this.cmenu);
				selectionClear.addActionListener(this.cmenu);
				selectionReset.addActionListener(this.cmenu);
				selectionGroup.addActionListener(this.cmenu);
				selectionUngroup.addActionListener(this.cmenu);
				items0.addActionListener(this.cmenu);
				itemsY.addActionListener(this.cmenu);
				itemsX.addActionListener(this.cmenu);
				itemc0.addActionListener(this.cmenu);
				itemcY.addActionListener(this.cmenu);
				itemcX.addActionListener(this.cmenu);
				
				//Adding Items to Menus
				leMenuFichier.add(itemNew);
				leMenuFichier.add(itemOpen);
				leMenuFichier.add(itemSaveAs);
				leMenuFichier.add(itemClose);
				leMenuFichier.addSeparator();
				leMenuFichier.add(itemExit);
				leMenuEdition.add(itemClear);
				leMenuSelection.add(selectionClear);
				leMenuSelection.add(selectionReset);
				leMenuSelection.add(sousMenuTransformer);
				leMenuSelection.add(sousMenuDupliquer);
				leMenuSelection.add(selectionGroup);
				leMenuSelection.add(selectionUngroup);
				sousMenuTransformer.add(items0);
				sousMenuTransformer.add(itemsY);
				sousMenuTransformer.add(itemsX);
				sousMenuDupliquer.add(itemc0);
				sousMenuDupliquer.add(itemcY);
				sousMenuDupliquer.add(itemcX);
				
				
				//Adding Menus to JMenuBar
				this.add(leMenuFichier);
				this.add(leMenuEdition);
				this.add(leMenuSelection);
				
				this.disableMenus();
	}
	
	public void disableMenus(){
			this.leMenuSelection.setEnabled(false);
			this.leMenuEdition.setEnabled(false);
			this.itemClose.setEnabled(false);
			this.itemSaveAs.setEnabled(false);
			}
	public void enableMenus(){		
		this.leMenuSelection.setEnabled(true);
		this.leMenuEdition.setEnabled(true);
		this.itemClose.setEnabled(true);
		this.itemSaveAs.setEnabled(true);
			}
	
	}
	



